import pygame.font
import pygame


class Button:
    ''' 开始按钮的类 '''

    def __init__(self, game, msg):
        # 初始化按钮属性
        self.screen = game.screen  # 获取游戏屏幕对象
        self.screen_rect = game.screen.get_rect()  # 获取屏幕的矩形区域

        # 按钮设置
        self.width, self.height = 200, 50  # 设置按钮的宽度和高度
        self.button_color = (0, 255, 0)  # 设置按钮的颜色为绿色
        self.text_color = (255, 255, 255)  # 设置文本的颜色为白色
        self.font = pygame.font.SysFont(None, 48)  # 设置字体和大小

        # 创建按钮的矩形对象并将其置于屏幕中央
        self.rect = pygame.Rect(0, 0, self.width, self.height)
        self.rect.center = self.screen_rect.center

        # 准备按钮上的消息
        self._prep_msg(msg)

    def _prep_msg(self, msg):
        ''' 准备绘制到屏幕上的消息 '''
        self.msg_image = self.font.render(msg, True, self.text_color, self.button_color)  # 渲染消息文本为图像
        self.msg_image_rect = self.msg_image.get_rect()  # 获取消息图像的矩形区域
        self.msg_image_rect.center = self.screen_rect.center  # 将消息图像的矩形区域置于屏幕中央

    def draw_button(self):
        ''' 绘制按钮到屏幕 '''
        self.screen.fill(self.button_color, self.rect)  # 绘制按钮的矩形区域
        self.screen.blit(self.msg_image, self.msg_image_rect)  # 绘制消息图像到按钮上
